package ast;

/**
 * <code>Visitor</code>
 * Interface than any Visitor should implement
 * There is one method for each node in the AST
 */
public interface Visitor {
 
    public Object visit (AddNode n); 
    public Object visit (AndNode n); 
    public Object visit (AssignNode n); 
    public Object visit (BasicTypeDecNode n); 
    public Object visit (BodyNode n);
    public Object visit (BooleanNode n);
    public Object visit (CallVarExprNode n); 
    public Object visit (CallVarNode n);
    public Object visit (CallVarStmtNode n);
    public Object visit (CharListNode n);
    public Object visit (ClassDecNode n);
    public Object visit (ClassDefNode n);
    public Object visit (DivideNode n);
    public Object visit (EqNode n);
    public Object visit (ExpNode n);
    public Object visit (ExprNode n);    
    public Object visit (FormalparamNode n);
    public Object visit (GeNode n);
    public Object visit (GeqNode n);
    public Object visit (IfNode n);
    public Object visit (InNode n);
    public Object visit (InstVarDecNode n);
    public Object visit (IntNumNode n);
    public Object visit (LenNode n);
    public Object visit (LeNode n);
    public Object visit (LeqNode n);
    public Object visit (List n);
    public Object visit (MainProgramNode n);
    public Object visit (MethodBodyNode n);
    public Object visit (MethodDecNode n);
    public Object visit (MinusNode n);
    public Object visit (NeqNode n);
    public Object visit (NotinNode n);
    public Object visit (NotNode n);
    public Object visit (ObjTypeDecNode n);
    public Object visit (OrNode n);
    public Object visit (ParamlistNode n);
    public Object visit (ParamNode n);
    public Object visit (ParanExprNode n);
    public Object visit (RealNumNode n);
    public Object visit (RepeatNode n);
    public Object visit (ReturnStmtNode n);
    public Object visit (RootNode n);
    public Object visit (TimesNode n);
    public Object visit (VarExprNode n);
    public Object visit (VarNode n);
    public Object visit (TypeDecNode n);
}